feat(skills): SkillMatcher extraction + SQLite registry#7
Merged
jonathanpeterwu merged 17 commits intomainfrom Mar 28, 2026
Merged
feat(skills): SkillMatcher extraction + SQLite registry#7jonathanpeterwu merged 17 commits intomainfrom
jonathanpeterwu merged 17 commits intomainfrom
Conversation
added 17 commits
March 22, 2026 13:18
Unify three disconnected skill layers (hook scoring, slash skills, runtime skills) behind a shared TypeScript engine and SQLite backend. - Add rule/matcher types to types.ts, remove dead Redis constants - Port skill-eval.cjs algorithm to stateless skill-matcher.ts - Add SkillRegistry with SQLite backend (~/.stackmemory/skills.db) - Rewire MCP skill-handlers to use SQLite instead of Redis - Add match_prompt MCP tool for prompt→skill scoring - 52 tests: pure matcher, SQLite CRUD, golden parity with CJS
Auto-format pre-existing src/core/rules/ and src/cli/commands/rules.ts to pass pre-push lint gate.
- pr-ci.yml: lint, test, build in parallel on PRs to main - pr-review.yml: Claude Sonnet reviews diffs, posts findings as PR comment Updates existing bot comment on force-push instead of spamming
- Remove unused imports in rules.ts (prettier error) - Point typecheck at tsconfig.check.json - Fix .tsbuildinfo glob in .gitignore
…, and frames (STA-475)
- Replace full-file variant output with condensed delta summaries (added/changed/removed sections + score delta) - Add multi-target config (targets[] array) with per-target eval sets for global, provenantai, dispatch, and stackmemory CLAUDE.md files - Add `apply` command to patch best variant into target with backup - Add `run-all` command to optimize all targets sequentially - Add `targets` command to list configured targets - Add `--target <name>` flag for single-target optimization - Add `--full` flag to diff for unified diff (delta is default) - Add gepa-session-hook.js for Claude Code Stop event auto-wiring: tracks sessions, auto-triggers reflect+optimize after N sessions
New `stackmemory skill` command for managing .skill.md knowledge files: - list: discover skills from global + project dirs - match: keyword-match skills against a prompt - show: display full skill content - add: install from local file or URL - refresh: check freshness, flag expired skills - init: scaffold new .skill.md with template
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
skill-eval.cjsscoring engine to TypeScriptSkillMatcher(stateless, pure functions)SkillStorageServicewith SQLiteSkillRegistry(~/.stackmemory/skills.db)match_promptMCP tool for prompt→skill scoringREDIS_KEYS,CACHE_TTL,calculateSkillTTL)src/core/rules/Test plan
skill-rules.json, match prompts, verify same results as hook